home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 17 / CU Amiga Magazine's Super CD-ROM 17 (1997)(EMAP Images)(GB)[!][issue 1997-12].iso / CUCD / Graphics / RTGmaster / demos / network / TCPServ.c < prev    next >
C/C++ Source or Header  |  1997-09-26  |  2KB  |  72 lines

  1. #include <clib/rtgextra_protos.h>
  2. #include <pragmas/rtgextra_pragmas.h>
  3. #include <clib/exec_protos.h>
  4. #include <pragmas/exec_pragmas.h>
  5. #include <stdio.h>
  6. #include <rtgmaster/rtgtcpip.h>
  7. #include <string.h>
  8.  
  9. struct Library *SocketBase=0;
  10. struct Library *RTGExtraBase=0;
  11.  
  12. void main()
  13. {
  14.  if (RTGMasterBase=OpenLibrary("rtgextra.library",0))
  15.  {
  16.   if (SocketBase=OpenLibrary("bsdsocket.library",0))
  17.   {
  18.    struct RTG_Socket *rs;
  19.    struct RTG_Socket *rs2;
  20.    struct RTG_Socket *msgsock;
  21.    struct RTG_Buff in_buffer;
  22.    struct RTG_Buff out_buffer;
  23.    long arg=1;
  24.    char buf[1024];
  25.    int f,rval;
  26.    for (f=0;f<9;f++)
  27.    {
  28.     in_buffer.num[f]=-1;
  29.     out_buffer.num[f]=-1;
  30.    }
  31.    in_buffer.in_size=21;
  32.    out_buffer.out_size=25;
  33.    rs=OpenServer(SocketBase,3050,SOCK_STREAM,0);
  34.    RtgIoctl(SocketBase,rs,&arg);
  35.    while(1)
  36.    {
  37.     rs2=rs->list;
  38.     if (rs->num>1)
  39.      for (f=0;f<((rs->num)-1);f++)
  40.       {
  41.        strcpy(out_buffer.sock[f],"Message from the Server!");
  42.        out_buffer.num[f]=rs2->s;
  43.        rs2=rs2->list;
  44.       }
  45.     if (rs->num>1)
  46.      for (f=0;f<((rs->num)-1);f++)
  47.      {
  48.       if (in_buffer.num[f]!=-1) printf("%s %i\n",in_buffer.sock[f],in_buffer.num[f]);
  49.      }
  50.     for (f=0;f<9;f++)
  51.     {
  52.      in_buffer.num[f]=-1;
  53.     }
  54.     if (RunServer(SocketBase,rs,&in_buffer,&out_buffer,9))
  55.     {
  56.      int f=1;
  57.      struct RTG_Socket *tsock;
  58.      for(tsock=rs;tsock->list;tsock=tsock->list)
  59.      {
  60.       printf("Socket Nr. : %i ist %i\n",f,(tsock->list)->s);
  61.       f++;
  62.      }
  63.     }
  64.    }
  65.    if (SocketBase) CloseLibrary(SocketBase);
  66.    if (RTGExtraBase) CloseLibrary(RTGExtraBase);
  67.  
  68.   }
  69.  }
  70. }
  71.  
  72.